package cn.com.huzo.repository.inventory;

import cn.com.huzo.model.entities.inventory.StockInLinesEntity;
import huzofw.repository.GenericRepository;
import java.util.List;
import java.util.Map;

/**
 * 入库单细数据访问对象接口。
 *
 * @author 吴旭
 */
public interface StockInLinesRepository extends GenericRepository<StockInLinesEntity, String> {

    /**
     * 取得该入库单的全部明细数据
     *
     * @param headerId 入库单ID
     * @return 全部入库明细
     */
    List<StockInLinesEntity> fetchAllByHeaderId(Long headerId);

    /**
     * 增加入库单明细。
     *
     * @param criterion 增加入库单明细
     * @return 影响行数
     */
    Integer insertLines(Map<String, Object> criterion);

    /**
     * 清除到货允许
     *
     * @param instance 要清除的明细数据
     * @return 影响的行数
     */
    Integer clearArrivalAllowed(StockInLinesEntity instance);

    /**
     * 删除空引用的订单及明细
     *
     * @param headerId 入库单标识
     * @return 影响行数
     */
    Integer delete_for_sync_lines(Long headerId);
}
